<template>
  <div>
    按照从上往下传值，使用props进行传值，通过父组件向子组件进行传值


    父组件向子组件传值成功
    总结一下：

    子组件在props中创建一个属性，用以接收父组件传过来的值
    父组件中注册子组件
    在子组件标签中添加子组件props中创建的属性
    把需要传给子组件的值赋给该属性


    <secondlevel :firstlevel="firstlevel" v-on:firstlisten="listensecond"></secondlevel>
    子组件向父组件传值成功
    总结一下：

    子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件
    将需要传的值作为$emit的第二个参数，该值将作为实参传给响应自定义事件的方法
    在父组件中注册子组件并在子组件标签上绑定对自定义事件的监听

    在通信中，无论是子组件向父组件传值还是父组件向子组件传值，
    他们都有一个共同点就是有中间介质，
    子向父的介质是自定义事件，父向子的介质是props中的属性。抓准这两点对于父子通信就好理解了

  </div>

</template>

<script>
    import Secondlevel from "@/components/secondlevel";
    export default {
        name: "firstlevel",
        data(){
          return {
            firstlevel:"小傻瓜"
          }
        },
      components: {Secondlevel},
      methods:{
        listensecond:function (data) {
            console.log(data)
          }
      }
    }
</script>

<style scoped>

</style>
